Der Unterschied besteht darin, dass in einigen Fällen die Wahl eher auf iterator als die besser geeignete Methode fällt: Iteratoren können zurückgegeben und verändert werden, bevor die gespeicherten Daten vollständig verfügbar sind. Listen bzw. Arrays hingegen müssen erst vollständig bestückt sein, bevor man ihren Rückgabewert zuverlässig erhält.
Stellen Sie sich einen Fall vor, wo Sie einen Strom von Objekten aus einer Quelle beziehen, die jedes Objekt mit einer gewissen Zeitverzögerung erstellt. Diese Situation kommt recht häufig vor bei Software, die Ein- und Ausgaben in einem Netzwerk verwendet, oder auch bei umfangreichen Abfrage-Ergebnissen aus Datenbanken. Wenn Sie nach einer Methode suchen, die eine Reihe von Objekten liefert, welche die Ergebnisse dieser langsamen Datenquelle repräsentieren, bietet sich sowohl eine Liste als auch ein Iterator an. Versuchen wie es zuerst mit einer Liste.
Eine Liste verwenden
In Listing A sehen Sie, dass die getUsers-Methode das vollständige Ergebnis zwischenspeichert, bevor sie die Liste zurückgibt. Dies erfordert unter Umständen nicht nur sehr viel Speicherplatz, sondern kann auch zu unnötigen Verzögerungen führen. Wenn der Aufrufer der getUsers-Methode die zurückgegebenen Objekte jeweils einzeln bearbeiten will – ausdrucken zum Beispiel -, ist die Erstellung einer Collection überflüssig.
Neueste Kommentare
Noch keine Kommentare zu Iteratoren oder Listen für Rückgabewerte in Java
Kommentar hinzufügenVielen Dank für Ihren Kommentar.
Ihr Kommentar wurde gespeichert und wartet auf Moderation.